home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 2 / Amiga Tools 2.iso / dfue / elcheapofax / all2fax.rexx next >
OS/2 REXX Batch file  |  1995-03-09  |  4KB  |  154 lines

  1. /*
  2.  * All2fax.rexx
  3.  * $Id: all2fax.rexx,v 1.3 1993/07/01 00:44:20 Rhialto Exp $
  4.  *
  5.  * Copyright (C) 1993 by Olaf 'Rhialto' Seibert. All rights reserved.
  6.  */
  7. append = ""                     /* set for each non-first filepart */
  8. invert = ""
  9. raw = "-r"                      /* unset for last filepart */
  10. verbose = ""
  11. fontname = "courier.font"
  12. fontsize = 30
  13. outfile = "all.fax"
  14. xoffset = 50
  15. yoffset = 50            /* set to 0 for each non-first filepart */
  16. infiles = 0
  17.  
  18. call doargs(arg(1))
  19.  
  20. do fi = 1 to infiles
  21.     ifp = ""
  22.     if open(ifp, infile.fi, "read") = 0 then do
  23.     say "Can't open input file" infile.fi
  24.     exit 20
  25.     end
  26.     call opentempfile
  27.     do forever
  28.     line = readln(ifp)
  29.     if eof(ifp) then leave
  30.     if left(line, 1) = "." then do
  31.         cmd = word(line, 1)
  32.         tail = delword(line, 1, 1)
  33.         select
  34.         when left(line, 2) = ".." then do
  35.             writeln(tfp, substr(line, 2)
  36.             dotfp = 1
  37.             end
  38.         when cmd = ".args" then do
  39.             call processtempfile
  40.             call doargs(tail)
  41.             end
  42.         when cmd = ".doit" then do
  43.             call doargs(tail)
  44.             call processtempfile
  45.             end
  46.         when cmd = ".iff" then do
  47.             call processtempfile
  48.             call doifffile(tail)
  49.             end
  50.         when cmd = ".raw" then do
  51.             call processtempfile
  52.             call dorawfile(tail)
  53.             end
  54.         when cmd = ".rexx" then do
  55.             say "REXX:" tail
  56.             interpret tail
  57.             end
  58.         when cmd = ".shell" then do
  59.             say "SHELL:" tail
  60.             address command tail
  61.             end
  62.         when cmd = "." then nop
  63.         otherwise do
  64.             say "Unknown directive:" line
  65.             end
  66.         end
  67.     end; else do
  68.         writeln(tfp, line)
  69.         say line
  70.         dotfp = 1
  71.     end
  72.     end
  73.     /* Last filepart */
  74.     if fi = infiles then raw = ""
  75.     call processtempfile
  76.     call closetempfile
  77.     call deletetempfile
  78. end
  79.  
  80. doargs:     /* (arguments) */
  81.     args = arg(1)
  82.     words = words(args)
  83.     do wi = 1 to words
  84.     w = word(args, wi)
  85.     select
  86.         when w =  "-a" then append = w
  87.         when w = "--a" then append = ""
  88.         when w =  "-i" then invert = w
  89.         when w = "--i" then invert = ""
  90.         when w =  "-r" then raw = w
  91.         when w = "--r" then raw = ""
  92.         when w =  "-v" then verbose = w
  93.         when w = "--v" then verbose = ""
  94.         when w = "-f" then do; wi=wi+1; fontname = word(args, wi); end
  95.         when w = "-s" then do; wi=wi+1; fontsize = word(args, wi); end
  96.         when w = "-o" then do; wi=wi+1; outfile = word(args, wi); end
  97.         when w = "-x" then do; wi=wi+1; xoffset = word(args, wi); end
  98.         when w = "-y" then do; wi=wi+1; yoffset = word(args, wi); end
  99.         otherwise do
  100.         infiles = infiles + 1
  101.         infile.infiles = w
  102.         end
  103.     end
  104.     end
  105.     return
  106.  
  107. opentempfile:
  108.     tfpname = "t:all2fax.tmp"
  109.     dotfp = 0
  110.     if open(tfp, tfpname, "write") = 0 then do
  111.     say "Can't open temporary file" tfpname
  112.     exit 20
  113.     end
  114.     return
  115.  
  116. closetempfile:
  117.     if close(tfp) = 0 then do
  118.     say "Can't close temporary file" tfpname
  119.     exit 20
  120.     end
  121.     return
  122.  
  123. deletetempfile:
  124.     address command "delete" tfpname
  125.     return
  126.  
  127. processtempfile:
  128.     if dotfp = 0 then return
  129.     call closetempfile
  130.     cmd = "asc2fax" append invert raw verbose,
  131.     "-f" fontname "-s" fontsize "-o" outfile "-x" xoffset "-y" yoffset,
  132.     tfpname
  133.     say cmd
  134.     address command cmd
  135.     call opentempfile
  136.     /* >= Second file part */
  137.     append = "-a"
  138.     yoffset = 0
  139.     return
  140.  
  141. doifffile:  /* (arguments) */
  142.     cmd = "iff2fax" append invert raw verbose,
  143.     "-o" outfile "-x" xoffset "-y" yoffset,
  144.     arg(1)
  145.     say cmd
  146.     address command cmd
  147.     return
  148.  
  149. dorawfile:  /* (arguments) */
  150.     cmd = "append" verbose "-o" outfile arg(1)
  151.     say cmd
  152.     address command cmd
  153.     return
  154.